# from socket import socket as Socket
import socket

# 实现客户端和服务器的即时聊天 编码改为utf-8

# 创建一个udp的socket对象
server_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
server_socket.bind(('10.211.211.100', 6666))

# 注意 recvfrom 是一个阻塞的函数，如果没有收到数据包，那么程序暂停到这里不动
while True:
    # msg 收到的数据， addr 是源地址和源端口号
    msg, addr = server_socket.recvfrom(1024)
    if msg.decode('utf8') == 'quit': # 关闭服务端
        break
    # decode函数可以把字节数据转换为字符串
    print(f'来自客户端IP:{addr[0]},端口号：{addr[1]}的消息：{msg.decode("utf8")}')

    # 服务端也可以发送数据到客户端
    send_msg = input('服务端发送的消息：')
    # send发送的数据不能是字符串，只能是字节数据， 字符传的encode函数
    server_socket.sendto(send_msg.encode('utf8'), addr)

# 最后关闭socket

server_socket.close()
